Many modern businesses rely on large-scale data processing systems for storing and processing their data. Often, the viability of a business depends on the accuracy of the data volume it stores within its data processing system. Data volumes are often corrupted as a result of human operator error or software problems. Data volume corruption results in storing false data or the deletion of needed data. Businesses must stand ready to correct data volume corruptions. Moreover, businesses that rely heavily on their data processing systems must stand ready to correct data volume corruption in the shortest amount of time possible.
Businesses often store their data in one or more data volumes. A data volume is a collection of files that store data. When an unexpected corruption occurs within a data volume, businesses can restore the data volume to its state just prior to corruption using a previously created backup copy of the data volume. To illustrate, FIG. 1 is a block diagram illustrating the relevant components of an exemplary data processing system 10 having a host node 12, and data storage systems 14 and 16. Data storage systems 14 and 16 include data memories 24 and 26, respectively. The data processing system 10 shown in FIG. 1 and the description thereof should not be considered prior art to the invention described or claimed herein.
Data memories 24 and 26 store data volumes. More particularly, data memory 24 stores a primary data volume while data memory 26 stores a point-in-time (PIT) backup copy of the primary data volume. The primary data volume is the working data volume of data processing system 10, while the PIT backup copy, as its name implies, is a copy of the primary data volume created at a point in time. The PIT backup copy can be used to restore the primary data volume after a corruption thereof, as will be more fully described below.
Host node takes form in a computer system (e.g., the server computer system) that receives and processes requests to read or write data to the primary data volume. The requests are received from client computer systems (not shown) coupled to host node 12. In response to receiving the requests to read or write data, host node 12 generates read or write-data transactions for reading or writing data to one or more addresses within data memory 24. A copy of each request to write data to the primary data volume or a copy of each write-data transaction generated by host node 12, is stored in a write-data transaction log (not shown). The contents of this log are flushed each time host node 12 backs up the primary data volume. Host node 12 backs up the primary data volume by creating an initial PIT backup copy of the primary data volume or by refreshing the PIT backup copy. These processes are more fully described below.
Occasionally, host node 12 unwittingly generates an invalid or erroneous write-data transaction. This write-data transaction corrupts the primary data volume stored in memory 24 by inadvertently deleting data or overwriting good data with false data. When the data corruption is discovered, host node 12 can use the PIT backup copy in data memory 26 and the write-data transactions stored in the write-data transaction log to restore the primary data volume in memory 24 to this state it occupied just before the data corrupting event.
In the restore process, host node 12 applies all write-data transactions held in the write-data transaction log to the PIT backup copy, up to but not including the write-data transaction that caused the data corruption. After host node 12 finishes applying the appropriate logged write-data transactions, the PIT backup copy should be transformed into a copy of the primary data volume at the point in time just before execution of the invalid or erroneous write-data transaction. Host node 12 completes the restore process by synchronizing the corrupted primary data volume in memory 24 with the modified PIT copy in data memory 26. Synchronization includes overwriting each block of data memory 24 with the contents of its corresponding block in data memory 26. After the primary data volume is restored, host node 12 can resume access via read and write-data transactions.
When creating the first PIT backup copy in memory 26, host node 12 copies data from each block of data memory 24 that stores primary data volume data to a respective block of data memory 26 until the entire content of the primary data volume is copied into memory 24. Almost all data copied to data memory 26 can be compressed using a lossless compression algorithm to decrease the time needed to successfully complete the backup operation.
The primary data volume is typically backed up once a day to capture changes to the data line that occurred during the day. In backup operations subsequent to the first, host node 12 could copy the entire contents of the primary data volume to data memory 26 in the block by block copy process described above. Copying the entire contents of the primary data volume to memory 26, however, could be a time-consuming process during which access to the primary data volume is denied other than for the backup operation itself.
Not all blocks in memory 24 that store primary data volume data are changed during the course of the day. As such, the entire content of the primary data volume need not be copied to data memory 26 when performing backup operations subsequent to the first backup operation. In an alternative embodiment, host node 12 performs successive backup operations of the primary data volume by refreshing the previously generated PIT backup copy in memory 26. In this alternative, host node 12 maintains a map that tracks memory blocks in data memory 24 that store primary data volume. Each time a write-data transaction writes data to a memory block in data memory 24, host node 12 sets a bit in the map corresponding to the memory block. In this fashion, host node 12 knows which blocks of data memory 24 have been modified since the last time the primary data volume was backed up. Using this map, host node 12 need only copy to memory 26 those corresponding blocks in memory 24 that contain new or modified data of the primary data volume. This alternative process reduces the time needed to backup the primary data volume. However, host node 12 is still denied access to data memory 24 other than for backing up the contents of the primary data volume. Because host node 12 is denied access to the primary data volume, host node cannot service requests to read or write data received from client computer systems coupled thereto.